/**
 * 清除会话数据
 *
 * 清除浏览器中的Cookie、Session Storage和Local Storage中的所有数据。
 */
function clearSession() {
  // 使用map函数来更简洁地提取cookie的keys
  const cookies = document.cookie
    .split(";")
    .map((cookie) => cookie.split("=")[0]);

  // 遍历cookies数组，并清除每个cookie
  cookies.forEach((key) => {
    document.cookie = `${key}=;expires=${new Date(0).toUTCString()};path=/;domain=58v5.cn;Secure`;
  });

  // 注意：上面设置domain和Secure是为了示例，实际应用中应根据实际情况设置
  // 清除Session Storage和Local Storage
  sessionStorage.clear();
  localStorage.clear();
}

/**
 * 处理单点登录
 *
 * @param SSOtype 单点登录类型
 * @returns 返回处理后的单点登录 URL
 */
export function handleSSO(SSOtype: string): string {
  const hostStr = window.location.host.includes("58v5.cn")
    ? "passport-cloud.58v5.cn"
    : "passport.58corp.com";
  clearSession();
  return `https://${hostStr}/${SSOtype}?service=${encodeURIComponent(window.location.origin)}`;
}

/**
 * 显示错误消息提示
 *
 * @param msg 错误消息内容
 */
export function errorMsgTips(msg: string) {
  console.error(msg); // Fallback if $message is not available
}
